this._thumbnailsBox = new WorkspaceThumbnail.ThumbnailsBox();
this._controls = new OverviewControls.ControlsManager(this._dash,
this._thumbnailsBox,
- this._viewSelector);
+ this._viewSelector,
+ this._searchEntryBin);
// Pack all the actors into the group
this._group.add_actor(this._controls.dashActor);
this._overview.add(this._group, { y_fill: true,
expand: true });
- // Then account for message tray
- this._messageTrayGhost = new St.Bin({ style_class: 'message-tray-summary',
- reactive: false,
- opacity: 0,
- x_fill: true,
- y_fill: true });
- this._overview.add_actor(this._messageTrayGhost);
-
// TODO - recalculate everything when desktop size changes
this.dashIconSize = this._dash.iconSize;
this._dash.connect('icon-size-changed',
}
});
+const SlidingControlContainer = new Lang.Class({
+ Name: 'SlidingControlContainer',
+ Extends: St.Widget,
+
+ _init: function(child, entryBin) {
+ this._layout = new Clutter.BoxLayout({ vertical: true });
+ this.parent({ layout_manager: this._layout });
+
+ child.x_expand = true;
+ this.add_actor(child);
+
+ let entryClone = new St.Widget();
+ entryClone.height = entryBin.height;
+ this.add_actor(entryClone);
+
+ entryBin.connect('notify::height', Lang.bind(this,
+ function() {
+ entryClone.height = entryBin.height;
+ }));
+ }
+});
+
const ControlsManager = new Lang.Class({
Name: 'ControlsManager',
- _init: function(dash, thumbnails, viewSelector) {
+ _init: function(dash, thumbnails, viewSelector, entryBin) {
this._dashSlider = new DashSlider(dash);
- this.dashActor = this._dashSlider.actor;
+ this.dashActor = new SlidingControlContainer(this._dashSlider.actor, entryBin);
this._thumbnailsSlider = new ThumbnailsSlider(thumbnails);
- this.thumbnailsActor = this._thumbnailsSlider.actor;
+ this.thumbnailsActor = new SlidingControlContainer(this._thumbnailsSlider.actor, entryBin);
this._viewSelector = viewSelector;
this._viewSelector.connect('page-changed', Lang.bind(this, this._setVisibility));